package com.longfor.dragonshard.common.enums;

import static com.longfor.drogon.common.LFConstants.PLACE_HOLDER;

/**
 * 业务异常定义
 *
 * @author mayee
 *         Created on 2017/2/9 下午3:41
 * @version v1.0
 */
public enum BizEnum {

    /* 通用E99开头 */
    E9901("E9901", "数据不存在"),
    E9902("E9902", "用户名或密码错误"),
    E9903("E9903", "获取验证码过于频繁，请稍后再试"),
    E9904("E9904", "验证码已过期"),
    E9905("E9905", "验证码错误"),
    E9906("E9906", "用户状态不可用");




    /**
     * 枚举码
     */
    private String code;
    /**
     * 枚举描述
     */
    private String text;

    BizEnum(String code, String text) {
        this.code = code;
        this.text = text;
    }

    public String getCode() {
        return code;
    }

    public String getText() {
        return text;
    }

    public String getText(String... values) {
        String msg = text;
        for (String val : values) {
            msg = msg.replaceFirst(PLACE_HOLDER, val);
        }
        return msg;
    }

    /**
     * 根据枚举码获取枚举
     *
     * @param code 枚举码
     * @return 枚举
     */
    public static BizEnum getByCode(String code) {
        for (BizEnum bizEnum : values()) {
            if (code.equals(bizEnum.getCode())) {
                return bizEnum;
            }
        }
        return null;
    }



}
